會想寫這篇主要是因為學校開發的行動 APP 不太好用,而且 APP 本身功能很少,大部分都是跳轉至外部瀏覽器或內嵌網頁的功能,反應速度也很慢。俗話說的好:「長江後浪推前浪」,既然前浪已經沒什麼力氣,也沒有人跳出來的話,那就由我來擔任那個「沒有人」,讓前浪死在沙灘上吧 XD
身為一個小小碼農,剛好也會一點 Java 跟 Kotlin,能做的就是開發一個更好用、更好看的行動 APP,讓各位同學的校園生活變得美好一點點!
自我介紹
Mikucat,一位資訊領域什麼都碰但什麼都不精的萌新,從資安、網路到開發都有接觸,常常挖坑也常常棄坑的懶惰鬼。
- 很菜的 CTF 選手
- 逢甲大學宿舍網管
- 逢甲大學黑客社教學兼網管
- SITCON 2021 & 2022 講者
文章流程
這一系列不太會出現工具、函式庫使用方式、開發詳細步驟或由淺入深教學,比起技術教學文章,這個系列比較像是開發日誌,紀錄我從規劃到開發一個 Android APP 用到的各種工具、函式庫、知識與方法,並分享其中踩到的坑與心得。
開發環境
- 開發用筆電
- AMD R5-5500U
- Arch Linu + KDE
- 測試用手機
- Android Studio 2022.1.1 Canary 10
專案原始碼
https://github.com/mikucat0309/Open-FCU
大綱
- 需求擷取與分析
- 開發規劃
- 逆向工程
- API 測試
- Kotlin 技巧
- Android Studio 環境建置
- 功能簡介
- 擴充元件
- 建立 Jetpack Compose Project
- Project 資料夾結構
- Gradle Kotlin DSL 基礎
- Gradle 簡介
- Gradle Kotlin DSL 特色
- 依賴、擴充元件
- Coding Style、Formatter 與 Linter
- Official Coding Style
- Ktlint
- Detekt
- Compose
- 常用 Composable 元件
- Modifier
- Android 概念
- Android Debug 工具
- 開發者工具
- Logcat
- HttpCanary
- Scoop
- MVVM 概念
- Model
- View
- ViewModel
- State、StateFlow
- Observer Pattern
- Dependency Injection
- Navigation
- Kotlin Coroutine
- Coroutine with Android Lifecycle
- HTTP API Client
- DTO
- Kotlin Serialization
- Ktor
- 版本控制
- Git
- Commit
- Tag
- Branch
- Merge
- GitHub
- SSH key
- GPG Sign
- Issue、Pull Request
- 單元測試
- Material Design
- UI 設計
- Widget 與 Shortcut
- 發布 APP
- CI